<?php
/**
 *
 * ============================================================================
 * * 版权所有 度拉拉 * *
 * 网站地址: http://www.dlltrip.com
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和
 * 使用；不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * Author By: 倪宗锋
 * PhpStorm Order.php
 * Create By 2017/7/3 18:49 $
 */

namespace zzcx\service\user;


use common\models\OrderContacts;
use common\models\OrderInfo;
use common\models\OrderMain;
use common\service\login\LoginService;
use common\util\OrderUtil;
use common\util\Util;
use zzcx\service\home\FreeWalker;

class Order
{

    /**
     * Des:获取订单列表
     * Name: getList
     * @param $params
     * @return array
     * @author 倪宗锋
     */
    public function getList($params)
    {
        //参数校验
        $checkData = [$params['page_size'], $params['current_page']];
        if (Util::checkPattern('intVal', $checkData) == false) {//校验所有参数是否都是整数
            return Util::returnArrEr('params error!');
        }
        $order = new OrderMain();
        $getList = $order->getListForZzcx($params);
        return Util::returnArrSu('', ['list' => $getList]);
    }

    /**
     * Des:获取订单的详细信息
     * Name: getOrderInfo
     * @param $order_id
     * @return array
     * @author 倪宗锋
     */
    public function getOrderInfo($order_id)
    {
        if (!Util::checkPattern('intVal', $order_id)) {
            return Util::returnArrEr('param error!');
        }
        $orderMain = new OrderMain();
        $getInfo = $orderMain->getOrderInfoById($order_id);
        if (empty($getInfo['order_id'])) {
            return Util::returnArrEr('网络异常，请您稍后再试');
        }
        /**暂时 关闭权限，方便支付用户浏览订单详细*/
//        $uid = LoginService::$uid;
//        if ($getInfo['sh_uid'] != $uid) {
//            return Util::returnArrEr('您没有该订单的查看权限！');
//        }
        // 获取保险数量
        $order_contacts = new OrderContacts();
        $getInfo['contacts_num'] = $order_contacts->getContactsNum($order_id);
        $getInfo['user_list']=[];
        $getInfo['price_info'] = [];
        if ($getInfo['contacts_num'] && $getInfo['category_id']==1) {
            // 获取车票价格信息
            $order_info = new OrderInfo();
            $getInfo['price_info'] = $order_info->getOrderPriceDetail($order_id);
        }
        if ($getInfo['contacts_num'] && $getInfo['category_id']==4) {
            // 获取自由行价格信息
            $free_walker=new FreeWalker();
            $insurance_price=$free_walker->getTripDays($getInfo['prod_cate_id'],$getInfo['start_date']);
            $base_tourist_price=$getInfo['total_money']-$getInfo['contacts_num']*$insurance_price['data']['price'];
            $average=round($base_tourist_price/$getInfo['prod_cnt'],2);
            $getInfo['price_info']=[
               0=>['count'=>$getInfo['prod_cnt'],
                'unit_price'=>$average,],
            ];
        }
        //酒店 获取入住人信息
        if($getInfo['category_id'] == 3) {
            $getInfo['user_list'] = $order_contacts->getPassAngerPeople($order_id);
        }
        return Util::returnArrSu('', ['info' => $getInfo]);
    }

    /**
     * Des:取消订单
     * Name: cancel
     * @param $order_id
     * @return array
     * @author 倪宗锋
     */
    public function cancel($order_id)
    {
        if (!Util::checkPattern('intVal', $order_id)) {
            return Util::returnArrEr('param error!');
        }
        $orderMain = new OrderMain();
        $getInfo = $orderMain->getOrderInfoById($order_id);
        if (empty($getInfo['order_id'])) {
            return Util::returnArrEr('网络异常，请您稍后再试');
        }
        $uid = LoginService::$uid;
        if ($getInfo['sh_uid'] != $uid) {
            return Util::returnArrEr('请您用预定时所留的手机号所对应的账号进行退款申请。');
        }
        $cancel = OrderUtil::applyCancelOrder($order_id, 1, 1, $uid, 3);
        return $cancel;
    }

}